package com.cskaoyan.javase.oop3.innerclazz6.anonymous.exercise;

/**
 * @description: 小试牛刀
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import com.cskaoyan.javase.oop3.innerclazz6.anonymous.exercise.impl.InterImpl;

/**
 * 按照要求，补齐代码
 * IDEA当中提示的万能快捷键 ALT+回车
 *
 */
public class Demo3{
    public static void main(String[] args) {
        //做代码题 万变不离其宗的第一步 找main方法
        //这个method方法是用Outer这个类名调用--->method方法是Outer类中的静态方法
        //定义了这个静态方法后 立刻不报错了 但是show()报错
        //show是接口中的方法,它需要一个接口的实现类对象去调用这个方法--->method这个静态方法返回值是一个Inner接口的子类对象
        //把method方法的返回值改成Inter这个接口后 立刻不报错
        //最后一步就需要些这个接口的返回子类对象
        Outer.method().show();

    }
}

class Outer {
        public static Inter method(){
            //老花样 先创建实现类 再创建实现类对象
            //Inter i = new InterImpl();
            //return i;
            //新花样 使用匿名内部类
            return new Inter(){
                @Override
                public void show() {
                    System.out.println("Hello World");
                }
            };
        }
}
